package com.css.fxfzypg.manage.lethalitydifference.repository;

import com.css.fxfzypg.manage.lethalitydifference.repository.entity.LethalityDifferenceEntity;
import com.css.fxfzypg.manage.lethalitydifference.repository.entity.LethalityDifferenceFlagEntity;
import com.css.fxfzypg.manage.lethalitydifference.repository.entity.LethalityDifferenceItemEntity;
import com.css.fxfzypg.manage.lethalitydifference.vo.DistrictVo;
import com.css.fxfzypg.manage.lethalitydifference.vo.LethalityDifferenceParams;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface LethalityDifferenceRepository {

    boolean save(LethalityDifferenceEntity lethalityDifferenceEntity);

    Map<String, Object> querySubmitOrNot(String submitFlag, String taskCode, int curPage, int pageSize);

    boolean updateIsSubmit(Map<String, String> map);

    LethalityDifferenceEntity queryData(String id);

    Map<String, Object> queryDataList(HttpServletRequest request, LethalityDifferenceParams lethalityDifferenceParams, int curPage, int pageSize);

    Map<String, Object> getDataByTaskCodeAndArea(String id, String isAdopt);

    boolean updateIsAdopt(String id, String isAdopt);

    boolean modifyLethalityDifference(LethalityDifferenceEntity lethalityDifferenceEntity);

    boolean deleteById(String id);

    Map<String, Object> queryLethalityDifferenceDataByProvince(LethalityDifferenceParams lethalityDifferenceParams, int curPage, int pageSize, String userId, String provinceId, List<String> taskCodeList);

    Map<String, Object> getLethalityDifferenceDataByTeamMembers(HttpServletRequest request, LethalityDifferenceParams lethalityDifferenceParams, int curPage, int pageSize, String userId, List<String> taskCodeList);

    Map<String, Object> queryPutDataList(HttpServletRequest request, LethalityDifferenceParams lethalityDifferenceParams, int curPage, int pageSize);

    boolean addWeightValue(LethalityDifferenceEntity lethalityDifferenceEntity);

    List<LethalityDifferenceEntity> queryPutData(String taskId);

    boolean createFinalValue(LethalityDifferenceEntity lethalityDifferenceEntity);

    boolean saveItem(LethalityDifferenceItemEntity lethalityDifferenceItemEntity);

    boolean modifyLethalityDifferenceItem(LethalityDifferenceItemEntity lethalityDifferenceItemEntity);

    List<LethalityDifferenceItemEntity> queryItemData(String id);

    boolean deleteItemById(String id);

    boolean deleteCustomIndicatorById(String id);

    boolean addItemWeightValue(String itemId, String weightValue);

    List<LethalityDifferenceEntity> queryLethalityDifference(LethalityDifferenceParams lethalityDifferenceParams);

    List<LethalityDifferenceEntity> queryLethalityDifferenceByProvince(LethalityDifferenceParams lethalityDifferenceParams, String userId, String provinceId, List<String> taskCodeList);

    List<LethalityDifferenceEntity> getLethalityDifferenceByTeamMembers(LethalityDifferenceParams lethalityDifferenceParams, String userId, List<String> taskCodeList);

    LethalityDifferenceEntity getPutData(String provinceId, String cityId, String areaId);

    String getGeomByCode(String areaCode);

    List<DistrictVo> getAdoptedByTaskNum(String taskNum);

    List<LethalityDifferenceEntity> getAllPutData();

    List<LethalityDifferenceEntity> getAdoptedLethalityDifferenceByTaskNum(String taskNum);

    LethalityDifferenceEntity getPutDataByTaskNum(String taskNum, String provinceId, String cityId, String areaId);

    List<LethalityDifferenceFlagEntity> getDataByTaskCode(String taskCode);

    void saveYpgAreaLethalityDifferenceFlag(LethalityDifferenceFlagEntity lethalityDifferenceFlagEntity);

    Integer countByProvince(String province);

    Integer countByYearPrefixLike(String taskYear, String currProvinceId);

    Map<String, Object> appQuerySubmitOrNot(String submitFlag, String taskCode, int curPage, int pageSize,String userId);
}
